home *** CD-ROM | disk | FTP | other *** search
/ Programming Sound Cards / Programming Sound Cards.iso / sound_31 / cper.pas < prev    next >
Pascal/Delphi Source File  |  1995-01-01  |  4KB  |  97 lines

  1. const
  2.     Periods : array[0..15,0..35] of Word =
  3.         ( ( 856,808,762,720,678,640,604,570,538,508,480,453,
  4.                 428,404,381,360,339,320,302,285,269,254,240,226,
  5.                 214,202,190,180,170,160,151,143,135,127,120,113 ),
  6.             ( 850,802,757,715,674,637,601,567,535,505,477,450,
  7.                 425,401,379,357,337,318,300,284,268,253,239,225,
  8.                 213,201,189,179,169,159,150,142,134,126,119,113 ),
  9.             ( 844,796,752,709,670,632,597,563,532,502,474,447,
  10.                 422,398,376,355,335,316,298,282,266,251,237,224,
  11.                 211,199,188,177,167,158,149,141,133,125,118,112 ),
  12.             ( 838,791,746,704,665,628,592,559,528,498,470,444,
  13.                 419,395,373,352,332,314,296,280,264,249,235,222,
  14.                 209,198,187,176,166,157,148,140,132,125,118,111 ),
  15.             ( 832,785,741,699,660,623,588,555,524,495,467,441,
  16.                 416,392,370,350,330,312,294,278,262,247,233,220,
  17.                 208,196,185,175,165,156,147,139,131,124,117,110 ),
  18.             ( 826,779,736,694,655,619,584,551,520,491,463,437,
  19.                 413,390,368,347,328,309,292,276,260,245,232,219,
  20.                 206,195,184,174,164,155,146,138,130,123,116,109 ),
  21.             ( 820,774,730,689,651,614,580,547,516,487,460,434,
  22.                 410,387,365,345,325,307,290,274,258,244,230,217,
  23.                 205,193,183,172,163,154,145,137,129,122,115,109 ),
  24.             ( 814,768,725,684,646,610,575,543,513,484,457,431,
  25.                 407,384,363,342,323,305,288,272,256,242,228,216,
  26.                 204,192,181,171,161,152,144,136,128,121,114,108 ),
  27.             ( 907,856,808,762,720,678,640,604,570,538,508,480,
  28.                 453,428,404,381,360,339,320,302,285,269,254,240,
  29.                 226,214,202,190,180,170,160,151,143,135,127,120 ),
  30.             ( 900,850,802,757,715,675,636,601,567,535,505,477,
  31.                 450,425,401,379,357,337,318,300,284,268,253,238,
  32.                 225,212,200,189,179,169,159,150,142,134,126,119 ),
  33.             ( 894,844,796,752,709,670,632,597,563,532,502,474,
  34.                 447,422,398,376,355,335,316,298,282,266,251,237,
  35.                 223,211,199,188,177,167,158,149,141,133,125,118 ),
  36.             ( 887,838,791,746,704,665,628,592,559,528,498,470,
  37.                 444,419,395,373,352,332,314,296,280,264,249,235,
  38.                 222,209,198,187,176,166,157,148,140,132,125,118 ),
  39.             ( 881,832,785,741,699,660,623,588,555,524,494,467,
  40.                 441,416,392,370,350,330,312,294,278,262,247,233,
  41.                 220,208,196,185,175,165,156,147,139,131,123,117 ),
  42.             ( 875,826,779,736,694,655,619,584,551,520,491,463,
  43.                 437,413,390,368,347,328,309,292,276,260,245,232,
  44.                 219,206,195,184,174,164,155,146,138,130,123,116 ),
  45.             ( 868,820,774,730,689,651,614,580,547,516,487,460,
  46.                 434,410,387,365,345,325,307,290,274,258,244,230,
  47.                 217,205,193,183,172,163,154,145,137,129,122,115 ),
  48.             ( 862,814,768,725,684,646,610,575,543,513,484,457,
  49.                 431,407,384,363,342,323,305,288,272,256,242,228,
  50.                 216,203,192,181,171,161,152,144,136,128,121,114 )
  51.         );
  52.     MyAr : array[0..15] of ShortInt = (0,1,2,3,4,5,6,7,-8,-7,-6,-5,-4,-3,-2,-1);
  53.  
  54. procedure Main;
  55. var
  56.     f : text;
  57.     i,j,k : Integer;
  58. begin
  59.     Assign(f,'PERIOD.ASM');
  60.     Rewrite(f);
  61.     WriteLn(f,'mt_PeriodTable:');
  62.     for i := 0 to 15 do
  63.     begin
  64.         WriteLn(f,'; Tuning ',MyAr[i]);
  65.         Write(f,'        dw    ');
  66.     for j := 0 to 11 do
  67.         begin
  68.             Write(f,Periods[i][j]*2);
  69.             if(j <> 11) then Write(f,',');
  70.         end;
  71.         WriteLn(f);
  72.         for k := 0 to 2 do
  73.         begin
  74.             Write(f,'        dw    ');
  75.             for j := 0 to 11 do
  76.             begin
  77.                 Write(f,Periods[i][(k*12)+j]);
  78.                 if(j <> 11) then Write(f,',');
  79.             end;
  80.             WriteLn(f);
  81.         end;
  82.         Write(f,'        dw    ');
  83.     for j := 0 to 11 do
  84.         begin
  85.             Write(f,Periods[i][24+j] div 2);
  86.             if(j <> 11) then Write(f,',')
  87.             else Write(f,',0')
  88.         end;
  89.     WriteLn(f);
  90.     end;
  91.     Close(f);
  92. end;
  93.  
  94. begin
  95.     Main;
  96. end.
  97.